Введение в PyTorch: почему тензоры важны
PyTorch — это высоко гибкая, динамичная открытая платформа, которая пользуется популярностью для исследований в области глубокого обучения и быстрой разработки прототипов. В основе этой платформы лежит тензор — незаменимая структура данных. Это многомерный массив, предназначенный для эффективной обработки числовых операций, необходимых для моделей глубокого обучения, с автоматической поддержкой ускорения на ускорении на GPU automatically.
1. Понимание структуры тензора
Каждый вход, выход и параметр модели в PyTorch содержится в тензоре. Они выполняют ту же функцию, что и массивы NumPy, но оптимизированы для обработки на специализированном аппаратном обеспечении, таком как GPU, что делает их значительно более эффективными для масштабных операций линейной алгебры, требуемых нейронными сетями.
Ключевые свойства определяют тензор:
- Форма: Определяет размеры данных, выраженные в виде кортежа (например, $4 \times 32 \times 32$ для пакета изображений).
- Тип данных: Указывает числовой тип элементов, хранящихся в тензоре (например,
torch.float32для весов модели,torch.int64для индексации). - Устройство: Указывает физическое местоположение аппаратного обеспечения: обычно
'cpu'или'cuda'(NVIDIA GPU).
requires_grad=True установлено, что позволяет легко рассчитывать градиенты во время обратного распространения.Выполните код, чтобы просмотреть активные тензоры
Внутренние размерности должны совпадать, поэтому $F$ должен быть $(1, 10)$. Тогда $(1, 10) @ (10, 5) \rightarrow (1, 5)$.
Код:
F_new = F.unsqueeze(0) или F_new = F.view(1, -1)Операция проста — обычное матричное умножение.
Код:
output = F_new @ W или output = torch.matmul(F_new, W)Используйте метод
view или reshape методы. Самый быстрый способ свернуть — использовать -1 для одной измерения.Код:
F_flat = F.view(-1) или F_flat = F.reshape(50)